package com.ruoyi.mapper.quality;

import com.ruoyi.domain.quality.MesQualityInspectionItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 检验项目记录Mapper接口
 * 
 * @author ruoyi
 */
@Mapper
public interface MesQualityInspectionItemMapper
{
    /**
     * 查询检验项目记录
     * 
     * @param itemId 检验项目记录主键
     * @return 检验项目记录
     */
    public MesQualityInspectionItem selectMesQualityInspectionItemByItemId(Long itemId);

    /**
     * 查询检验项目记录列表
     * 
     * @param mesQualityInspectionItem 检验项目记录
     * @return 检验项目记录集合
     */
    public List<MesQualityInspectionItem> selectMesQualityInspectionItemList(MesQualityInspectionItem mesQualityInspectionItem);

    /**
     * 新增检验项目记录
     * 
     * @param mesQualityInspectionItem 检验项目记录
     * @return 结果
     */
    public int insertMesQualityInspectionItem(MesQualityInspectionItem mesQualityInspectionItem);

    /**
     * 修改检验项目记录
     * 
     * @param mesQualityInspectionItem 检验项目记录
     * @return 结果
     */
    public int updateMesQualityInspectionItem(MesQualityInspectionItem mesQualityInspectionItem);

    /**
     * 删除检验项目记录
     * 
     * @param itemId 检验项目记录主键
     * @return 结果
     */
    public int deleteMesQualityInspectionItemByItemId(Long itemId);

    /**
     * 批量删除检验项目记录
     * 
     * @param itemIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesQualityInspectionItemByItemIds(Long[] itemIds);

    /**
     * 根据检验记录ID查询检验项目记录列表
     * 
     * @param inspectionId 检验记录ID
     * @return 检验项目记录集合
     */
    List<MesQualityInspectionItem> selectItemsByInspectionId(@Param("inspectionId") Long inspectionId);

    /**
     * 根据检验单号查询检验项目记录列表
     * 
     * @param inspectionCode 检验单号
     * @return 检验项目记录集合
     */
    List<MesQualityInspectionItem> selectItemsByInspectionCode(@Param("inspectionCode") String inspectionCode);

    /**
     * 根据检验项目ID查询检验项目记录列表
     * 
     * @param itemId 检验项目ID
     * @return 检验项目记录集合
     */
    List<MesQualityInspectionItem> selectRecordsByItemId(@Param("itemId") Long itemId);

    /**
     * 根据检验结果查询检验项目记录列表
     * 
     * @param result 检验结果
     * @return 检验项目记录集合
     */
    List<MesQualityInspectionItem> selectItemsByResult(@Param("result") String result);

    /**
     * 批量新增检验项目记录
     * 
     * @param inspectionItems 检验项目记录列表
     * @return 结果
     */
    int insertBatchInspectionItems(@Param("inspectionItems") List<MesQualityInspectionItem> inspectionItems);
}
